#include <bits/stdc++.h>
using namespace std;

using ll = long long; // 优先用using
//  或者用 typedef long long ll;  其次
// 或则用#define ll long long 最其次，注意没有分号

ll n, cnt = 0, a[1000005];
struct node {
  // ge:个位选的数  val:目前得到的值
  ll ge, val;
};

int main() {
  queue<node> Q;
  cin >> n;
  for (ll i = 1; i <= 9; i++) {
    Q.push(node{i, i});
  }

  while (cnt <= n) {
    node h = Q.front();
    Q.pop();
    a[++cnt] = h.val;  
    for (ll i = -1; i <= 1; i++) {
      node son = {h.ge + i, h.val * 10 + h.ge + i};
      if (son.ge >= 0 && son.ge <= 9)
        Q.push(son);
    }
  }

  sort(a + 1, a + 1 + cnt);
  cout << a[n];
  return 0;
}
